package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


/**
 * 使用第三方的json解析框架，需要在pom.xml中引入相应的依赖
 * 方法一：在App.java中继承WebMvcConfigurationSupport并重写方法：configureMessageConverters添加自定义的json解析框架
 * WebMvcConfigurerAdapter已过时推荐用WebMvcConfigurationSupport
 */

//extends WebMvcConfigurationSupport
@SpringBootApplication
//@("com.kfit.*.mapper")//扫描：该包下相应的class，主要是MyBatis的持久化类
public class DemoApplication  {

    /**
     * 使用fastJson解析json，继承WebMvcConfigurationSupport
     *
     * @param converters 1、需要先定义一个convert转换消息的对象
     *                   2、添加fastJson的配置信息，比如：是否要格式化返回的json数据
     *                   3、在convert中添加配置信息
     *                   4、将convert添加到converters当中
     */
//    @Override
//    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//        super.configureMessageConverters(converters);
//
//        //1、需要先定义一个convert转换消息的对象
//        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//
//        //2、添加fastJson的配置信息，比如：是否要格式化返回的json数据
//        FastJsonConfig fastJsonConfig = new FastJsonConfig();
//        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//
//        //3、在convert中添加配置信息
//        fastConverter.setFastJsonConfig(fastJsonConfig);
//
//        converters.add(fastConverter);
//    }

    /**
     * 使用@Bean注入fastJsonHttpMessageConvert
     */

   /* @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {

        //1、需要先定义一个convert转换消息的对象
        FastJsonHttpMessageConverter fasterConverter = new FastJsonHttpMessageConverter();

        //2、添加fastJson的配置信息，比如：是否要格式化返回的json数据
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

        //3、在convert中添加配置信息
        fasterConverter.setFastJsonConfig(fastJsonConfig);

        //处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fasterConverter.setSupportedMediaTypes(fastMediaTypes);

        return new HttpMessageConverters((HttpMessageConverter<?>) fasterConverter);
    }*/

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
